package com.meituan.sdk.model.pms.esports.postDevice;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 电竞设备信息采集
* This file was automatically generated.
*/
@ApiMeta(
    path = "/pms/esports/postDeviceInfo",
    businessId = 57,
    apiVersion = "10027",
    apiName = "post_device",
    needAuth = true
)
public class PostDeviceRequest implements MeituanRequest<PostDeviceResponse> {
    /**
    * <p data-diff-id="ct-diff-id-af270f8b-232c-4faa-9287-8766454f5076">酒店ID</p>
    */
    @NotNull(message = "hotelId不能为空")
    @SerializedName("hotelId")
    private Long hotelId;
    /**
    * <p data-diff-id="ct-diff-id-c401ba78-e00a-4b1b-8b8b-290b074f4da2"><span style="color: rgb(51, 51, 51)">名称</span></p>
    */
    @NotBlank(message = "pcName不能为空")
    @SerializedName("pcName")
    private String pcName;
    /**
    * <p data-diff-id="ct-diff-id-64d674e0-8ca8-46a5-a932-25f41dd3cf4c">序列号</p>
    */
    @NotBlank(message = "serialNumber不能为空")
    @SerializedName("serialNumber")
    private String serialNumber;
    /**
    * <p data-diff-id="ct-diff-id-9b519f7b-6c36-4c14-8fc4-ecf11b0ca399">内存</p>
    */
    @NotBlank(message = "memory不能为空")
    @SerializedName("memory")
    private String memory;
    /**
    * <p data-diff-id="ct-diff-id-20d87f92-21bf-44c4-b799-1a16550ddd86">主板</p>
    */
    @NotBlank(message = "mainBoard不能为空")
    @SerializedName("mainBoard")
    private String mainBoard;
    /**
    * <p data-diff-id="ct-diff-id-ea72d0ea-14cb-4d4c-a25c-78999c12202a">cpu</p>
    */
    @NotBlank(message = "cpu不能为空")
    @SerializedName("cpu")
    private String cpu;
    /**
    * <p data-diff-id="ct-diff-id-a6bcfccb-cca5-413b-af2d-39920d247272">gpu</p>
    */
    @NotBlank(message = "gpu不能为空")
    @SerializedName("gpu")
    private String gpu;
    /**
    * <p data-diff-id="ct-diff-id-ae0ebf99-c140-4808-93b7-ae1450bb4297">硬盘</p>
    */
    @NotBlank(message = "disk不能为空")
    @SerializedName("disk")
    private String disk;
    /**
    * <p data-diff-id="ct-diff-id-b8a29e73-05c6-4499-a78d-27ea8f5d6b7b">是否在线</p>
    */
    @NotNull(message = "isOnline不能为空")
    @SerializedName("isOnline")
    private Boolean isOnline;
    /**
    * <p data-diff-id="ct-diff-id-8882a543-23fa-47cd-ae3a-70e2ac269a41">Mac地址</p>
    */
    @SerializedName("macAddress")
    private String macAddress;
    /**
    * <p data-diff-id="ct-diff-id-8357e417-bf15-4e9e-bd8c-b13a29223639">显示器</p>
    */
    @SerializedName("monitor")
    private String monitor;
    /**
    * <p data-diff-id="ct-diff-id-7c045e3d-efd3-405f-af09-e22a13a14e1e">是否有配置变更</p>
    */
    @NotNull(message = "hasChanged不能为空")
    @SerializedName("hasChanged")
    private Boolean hasChanged;
    /**
    * <p data-diff-id="ct-diff-id-04e7ec45-2c04-4f2a-bd5f-5e6504dd52e0">是否有设备信息变更</p>
    */
    @NotNull(message = "hasInfoUpdated不能为空")
    @SerializedName("hasInfoUpdated")
    private Boolean hasInfoUpdated;
    /**
    * <p data-diff-id="ct-diff-id-52dc239b-3ace-46f9-be3f-e18f038e5ac4"><span style="color: #333">变更的硬件列表</span></p>
    */
    @SerializedName("updatedDeviceTypes")
    private List<String> updatedDeviceTypes;

    public Long getHotelId() {
        return hotelId;
    }
    public void setHotelId(Long hotelId) {
        this.hotelId = hotelId;
    }
    public String getPcName() {
        return pcName;
    }
    public void setPcName(String pcName) {
        this.pcName = pcName;
    }
    public String getSerialNumber() {
        return serialNumber;
    }
    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }
    public String getMemory() {
        return memory;
    }
    public void setMemory(String memory) {
        this.memory = memory;
    }
    public String getMainBoard() {
        return mainBoard;
    }
    public void setMainBoard(String mainBoard) {
        this.mainBoard = mainBoard;
    }
    public String getCpu() {
        return cpu;
    }
    public void setCpu(String cpu) {
        this.cpu = cpu;
    }
    public String getGpu() {
        return gpu;
    }
    public void setGpu(String gpu) {
        this.gpu = gpu;
    }
    public String getDisk() {
        return disk;
    }
    public void setDisk(String disk) {
        this.disk = disk;
    }
    public Boolean getIsOnline() {
        return isOnline;
    }
    public void setIsOnline(Boolean isOnline) {
        this.isOnline = isOnline;
    }
    public String getMacAddress() {
        return macAddress;
    }
    public void setMacAddress(String macAddress) {
        this.macAddress = macAddress;
    }
    public String getMonitor() {
        return monitor;
    }
    public void setMonitor(String monitor) {
        this.monitor = monitor;
    }
    public Boolean getHasChanged() {
        return hasChanged;
    }
    public void setHasChanged(Boolean hasChanged) {
        this.hasChanged = hasChanged;
    }
    public Boolean getHasInfoUpdated() {
        return hasInfoUpdated;
    }
    public void setHasInfoUpdated(Boolean hasInfoUpdated) {
        this.hasInfoUpdated = hasInfoUpdated;
    }
    public List<String> getUpdatedDeviceTypes() {
        return updatedDeviceTypes;
    }
    public void setUpdatedDeviceTypes(List<String> updatedDeviceTypes) {
        this.updatedDeviceTypes = updatedDeviceTypes;
    }


    @Override
    public MeituanResponse<PostDeviceResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<PostDeviceResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "PostDeviceRequest{" + "hotelId=" + hotelId + "," + "pcName=" + pcName + "," + "serialNumber=" + serialNumber + "," + "memory=" + memory + "," + "mainBoard=" + mainBoard + "," + "cpu=" + cpu + "," + "gpu=" + gpu + "," + "disk=" + disk + "," + "isOnline=" + isOnline + "," + "macAddress=" + macAddress + "," + "monitor=" + monitor + "," + "hasChanged=" + hasChanged + "," + "hasInfoUpdated=" + hasInfoUpdated + "," + "updatedDeviceTypes=" + updatedDeviceTypes + "}";
    }
}
